package fun.chutianshu.entity;

import java.util.ArrayList;

public class Map {
    private String name;
    private String info;
    private int x;
    private int y;
    // private Monster[10]
    // 动态数组，用来存放当前地图中的怪物
    private ArrayList<Monster> monsters;

    public Map(){}

    public Map(String name, String info, int x, int y) {
        this.name = name;
        this.info = info;
        this.x = x;
        this.y = y;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public ArrayList<Monster> getMonsters() {
        return monsters;
    }

    public void setMonsters(ArrayList<Monster> monsters) {
        this.monsters = monsters;
    }

    //添加功能性方法
    public void addMonster(Monster m){
        //为怪物数组列表中添加怪物对象
        // ArrayList 自带的 add 方法
        // 向列表末尾添加一个新项
        monsters.add(m);
    }

    // 找怪物方法
    //查看当前地图中所有的怪物
    public void findMonsters(){

        //先判断地图中是否有怪物，如果有，则打印信息
        if(this.monsters !=null)
        {
            System.out.println("当前地图："+this.name+" 中的怪物有：");
            for (Monster m:this.monsters) {
                System.out.println(m.toString());
            }
        }
        else {
            System.out.println("当前地图："+this.name+" 并无怪物！");
        }
    }

    //获得地图中还活着的怪物
    public ArrayList<Monster> getAliveMonsters(){
        //新建一个数组列表，作为容器
        ArrayList<Monster> am = new ArrayList<>();
        //遍历当前地图中的所有怪物
        for (Monster m:this.monsters) {
            //挑出血大于0的，放入新容器
            if(m.getHp()>0){
                am.add(m);
            }
        }
        return am;
    }

}
